package com.txts.road.app.map.service;

import com.txts.road.app.map.model.entity.LocationPointEntity;
import com.txts.road.app.map.model.dto.NavigationStartDTO;
import com.txts.road.app.map.model.dto.RoutePlanDTO;
import com.txts.road.app.map.model.query.POIQuery;
import com.txts.road.app.map.model.query.PlaceSearchQuery;
import com.txts.road.app.map.model.vo.FavoritePlaceVO;
import com.txts.road.app.map.model.vo.LocationPointVO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.txts.road.app.map.model.vo.WeatherVO;


import java.util.List;

/**
 * 位置点服务类
 *
 * @author baoyr
 * @since 2025-07-17 10:42
 */
public interface LocationPointService extends IService<LocationPointEntity> {


    /**
     * 搜索地点
     *
     * @param query 查询参数
     * @return 分页列表
     */
    List<FavoritePlaceVO> searchPlace(PlaceSearchQuery query);

    /**
     * 路径规划、
     *
     * @param planDTO 路径规划参数
     * @return true-路径规划成功
     */
    Boolean planRoute(RoutePlanDTO planDTO);

    /**
     * 导航
     *
     * @param startDTO 导航参数
     * @return true-导航成功
     */
    Boolean startNavigation(NavigationStartDTO startDTO);

    /**
     * 获取天气信息
     *
     * @param latitude  纬度
     * @param longitude 经度
     * @return 天气信息
     */
    WeatherVO getWeather(Double latitude, Double longitude);

    /**
     * 获取兴趣点
     *
     * @param query 兴趣点查询参数
     * @return 兴趣点列表
     */
    LocationPointVO getPOI(POIQuery query);


}
